Область применения: управляемое приложение.
1. Случаи, когда необходимо довести информацию до пользователя:
1.1. Информация об ошибках, выявленных при проверке заполнения, должна выводиться в панели сообщений формы. Например, такой способ информирования пользователя предлагает платформа для наименования справочников. Проверки заполнения можно разделить на два случая:
А) Проверку заполнения реквизитов объекта следует выполнять вне транзакции записи объекта.
Пример:
Средства для реализации:
Б) Проверку целостности объекта и связанных с ним данных следует выполнять в транзакции записи объекта.
Пример:
Средства для реализации:
При этом
1.2. Информация о протоколе выполненных действий может выводиться в отдельном поле в форме.
Пример:
Средства для реализации:
1.3. Информация об ошибке должна доводиться до пользователя в отдельном диалоге. Например, такой способ информирования пользователя предлагает платформа при выводе системных сообщений об ошибке: сообщения о неуникальности кода, неуникальности записи регистра сведений, незаданной дате документа и т.п.
Пример №1:
Способ реализации:
Оповещение = Новый ОписаниеОповещения("ПослеЗакрытияВопроса", ЭтотОбъект);
ПоказатьВопрос(Оповещение, НСтр("ru='В этом месяце еще не задан курс валюты. Использовать курс за прошлый месяц?'"), ...))
Пример №2:
Способ реализации:
Правильно:
ВызватьИсключение НСтр("ru='Не установлена управленческая валюта в настройках программы.'");
Правильно:
Если Не ЗарегистрироватьИзмененияНаУзлахПлановОбмена() Тогда
ВызватьИсключение НСтр("ru = 'Не удалось зарегистрировать изменения на узлах планов обмена из-за некорректных правил регистрации. Обратитесь к администратору.'");
КонецЕсли;
1.4. Информация об успешном выполнении действия в форме должна выводиться в случае, если факт выполнения команды не очевиден для пользователя. Система должна выдавать ту или иную реакцию на любую команду. Например, неправильно "проглатывать" молча нажатие на кнопку формы.
Доводить информацию до пользователя рекомендуется как при помощи блокирующего диалога (например, процедуры ПоказатьПредупреждение), так и при помощи метода ПоказатьОповещениеПользователя. Применять процедуру ПоказатьПредупреждение следует в том случае, если требуется "приостановить" работу пользователя и обратить его внимание на результат выполнения команды.
Пример:
Способ реализации:
Вместе с тем, не следует информировать пользователя об очевидно выполненном действии. Например, не следует сообщать об успешном выполнении команды "Заполнить" в условиях, когда заполняемый список товаров у пользователя "на виду", и пользователь и так отчетливо видит результат выполнения команды.
1.5. Информация об успешном выполнении действия в условиях отсутствия формы на экране должна также выводиться в том случае, когда для пользователя может оказаться неочевидным тот факт, что действие выполнено.
1.5.1. Использовать процедуру ПоказатьОповещениеПользователя для уведомления о завершении действия.
Например, при выполнении стартовой обработки информационной базы сообщить, что обработка выполнена успешно:
ПоказатьОповещениеПользователя(
НСтр("ru = 'Обновление на версию 2.0 успешно выполнено.'"), ,
НСтр("ru = 'Переход на новую версию'"),
БиблиотекаКартинок.Информация32);
1.5.2. Использовать процедуру Состояние при изменении состояния выполняемого действия на клиенте и после завершения действия (без последующего вызова ПоказатьОповещениеПользователя).
Например, при обработке нескольких файлов на клиенте сообщать: «Обработан файл 1 из 5»… «Обработан файл 4 из 5»… «Обработка файлов завершена»:
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку (
НСтр("ru = 'Обработан файл %1 из %2.'"), СчетчикФайлов, КоличествоФайлов),
СчетчикФайлов/КоличествоФайлов*100);
…
Состояние(НСтр("ru = 'Обработка файлов успешно завершена.'"));
В то же время для серверных операций не рекомендуется выполнять оповещение с помощью процедуры Состояние, т.к. в этом случае потребуются многократные вызовы сервера для передачи прогресса. См. Длительные операции на сервере.